package com.qidianit.mes.pojo.pro;

import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import lombok.Data;

import java.math.BigDecimal;
import java.time.LocalDate;
import java.time.LocalDateTime;

/**
 * @Description:
 * @Author: shanzhe
 * @Date: 2025/9/19 - 20:01
 */
@Data
@TableName("production_order") // MyBatis-Plus 注解，指定表名
public class ProductionOrder {

    /**
     * 工单主键ID
     */
    @TableId(type = IdType.AUTO) // MyBatis-Plus 注解，指定主键且自增
    private Long id;

    /**
     * 工单编码 (业务主键)
     */
    private String productionOrderCode;

    /**
     * 工单名称 (产品名称+规格)
     */
    private String productionOrderName;

    /**
     * 工单来源 (例如: 1-销售订单, 2-库存补充, 3-手动创建)
     */
    private Integer productionOrderSource;

    /**
     * 工单类型 (例如: 1-标准, 2-返工, 3-试制)
     */
    private Integer productionOrderType;

    /**
     * 来源单号 (例如销售订单号)
     */
    private String orderCode;

    /**
     * 生产物料ID (关联 material.id)
     */
    private Long materialId;

    /**
     * 生产物料编码 (冗余字段)
     */
    private String materialCode;

    /**
     * 计划生产数量
     */
    private BigDecimal productionOrderQuantity;

    /**
     * 客户ID (关联 customer.id)
     */
    private Long customerId;

    /**
     * 客户编码 (冗余字段)
     */
    private String customerCode;

    /**
     * 需求日期
     */
    private LocalDate requestDate;

    /**
     * 工单状态 (关联字典表)
     */
    private Integer status;

    /**
     * 工单二维码URL
     */
    private String qrCodeUrl;

    /**
     * 创建人ID
     */
    private Long creatorId;

    /**
     * 更新人ID
     */
    private Long updatorId;

    /**
     * 创建时间
     */
    private LocalDateTime createTime;

    /**
     * 更新时间
     */
    private LocalDateTime updateTime;

    /**
     * 删除标识 (0-未删除, 1-已删除)
     */
    private Integer deleteFlag;
}
